Most mobile computing systems (e.g., laptops and tablets) require a graphics processing unit (GPU) to drive displays. The GPU can either be integrated into the CPU (an “integrated graphics controller”) or a separate unit (a “discrete graphics controller”). When the GPU is a discrete graphics controller, the CPU typically communicates with the GPU using the PCIe standard.
Unlike in desktop systems where a graphics card can be easily added or replaced, in mobile systems, the graphics capabilities are decided at the point of purchase and typically cannot be updated. Mobile systems that employ integrated graphics controllers are typically less expensive and suitable for common users (e.g., users that employ their systems to run typical office productivity software). In contrast, for users that play games or use CAD, multimedia creation, or other graphics-intensive software, a sizable discrete graphics controller is typically required for adequate system performance. However, these discrete graphics controllers can be too expensive for many users.
In order to provide mobile systems that are relatively inexpensive, yet capable of providing high performance graphics, a technique known as remote graphics has been developed. Remote graphics refers to a process of delivering a PCIe interface of the mobile system to a remote system with a more powerful GPU to allow the CPU of the mobile system to send graphics commands to the remote GPU for rendering. A common approach for implementing remote graphics employs the Thunderbolt interface. Two different architectures that employ Thunderbolt to implement remote graphics are depicted in FIGS. 1A and 1B.
In FIG. 1A, a computer system 100a includes a CPU 101, a GPU (or discrete graphics controller) 102 that is coupled to CPU 101 via a number of PCIe lanes, and a platform controller hub (PCH) 103 that couples CPU 101 to three USB type-A ports 103a-103c. CPU 101 also has a dedicated 2 lane DisplayPort connection to an integrated display 104a (e.g., the built-in display of a laptop or tablet) and a number of digital display interfaces (DDI-1 through DDI-4). In this example, DDI-1 through DDI-3 comprise DisplayPort lanes while DDI-4 comprises an HDMI channel. It is assumed that computer system 100a includes a VGA port 104b coupled to DDI-3 via a DisplayPort to VGA adapter 104b1, a USB type-C port 104c coupled to DDI-1 and DDI-2 via a Thunderbolt controller 104c1, and an HDMI port 104d coupled to DDI-4 via a level shifter 104d1. Thunderbolt controller 104c1 is also coupled to CPU 101 via four PCIe lanes.
As is known in the art, Thunderbolt can be employed to tunnel DisplayPort and PCIe over USB type-C. Accordingly, with the architecture depicted in FIG. 1A, remote graphics can be implemented via USB type-C port 104c. More specifically, when it is desired to employ a remote GPU to render graphics for display on display 104a (or another connected display), a Thunderbolt cable can be connected between USB type-C port 104c and a Thunderbolt port of the system having the remote GPU to allow graphics commands to be output by CPU 101 to Thunderbolt controller 104c1 and then to the remote GPU via the connected cable. In short, CPU 101, which would typically communicate with GPU 102 via PCIe, can instead be configured to communicate with the remote GPU using PCIe over Thunderbolt.
FIG. 1B illustrates a computer system 100b with a similar architecture as computer system 100a except that USB type-A ports 103a-103c have been replaced with USB type-C ports 113a-113c. With this replacement, ports 113a-113c can be employed to connect digital display devices. Accordingly, computer system 100b includes USB3/DisplayPort multiplexers 113a1-113c1 which allow ports 113a-113c to be selectively coupled to DDI-4, DDI-1, and DDI-3 respectively. It is noted that, in this architecture, Thunderbolt controller 104c1 is employed to couple HDMI port 104d to DDI-1 or DDI-2. With the architecture of FIG. 1B, remote graphics can be implemented in the same manner as described above. Specifically, GPU 102 can cause CPU 101 to communicate graphics commands to a remote GPU over PCIe using Thunderbolt controller 104c1.
One problem of employing the architectures of FIGS. 1A and 1B to implement remote graphics is that a Thunderbolt controller is required. The Thunderbolt controller itself is relatively expensive and requires an expensive cable. Therefore, a system capable of implementing remote graphics is oftentimes too expensive for many users that would otherwise benefit from the capability.